package com.xuecheng.learning.service;

import com.xuecheng.base.model.PageResult;
import com.xuecheng.learning.model.dto.MyCourseTableItemDto;
import com.xuecheng.learning.model.dto.MyCourseTableParams;
import com.xuecheng.learning.model.dto.XcChooseCourseDto;
import com.xuecheng.learning.model.dto.XcCourseTablesDto;
import com.xuecheng.learning.model.po.XcChooseCourse;
import com.xuecheng.learning.model.po.XcCourseTables;

/**
 * ClassName: MyCourseTablesService
 * Package: com.xuecheng.learning.service
 * Description: 我的课程表service接口
 *
 * @Author Endeavor-ZQB
 * @Create 2023/2/19 17:21
 * @Version 1.0
 */
public interface MyCourseTablesService {

    public XcChooseCourseDto addChooseCourse(String userId, Long courseId);

    /**
     * @description 判断学习资格
     * @param userId
     * @param courseId
     * @return XcCourseTablesDto 学习资格状态 [{"code":"702001","desc":"正常学习"},{"code":"702002","desc":"没有选课或选课后没有支付"},{"code":"702003","desc":"已过期需要申请续期或重新支付"}]
     * @author Mr.M
     * @date 2022/10/3 7:37
     */
    public XcCourseTablesDto getLeanringStatus(String userId, Long courseId);

    /**
     * @Description 添加课程表
     * @Param [xcChooseCourse] 选课记录
     * @return com.xuecheng.learning.model.po.XcCourseTables
     */
    public XcCourseTables addCourseTables(XcChooseCourse xcChooseCourse);

    /**
     * @Description 我的课程表
     * @Param [params]
     * @return com.xuecheng.base.model.PageResult<com.xuecheng.learning.model.dto.MyCourseTableItemDto>
     */
    public PageResult<MyCourseTableItemDto> mycoursetable(MyCourseTableParams params);
}
